Synchronized multichannel universal serial bus

ABSTRACT

The invention provides a method and apparatus for providing a synchronized multichannel universal serial bus, the method in one aspect comprising supplementing the signal channels in the USB specification to provide synchronization information from an external source, and in another aspect comprising observing USB traffic and locking a local clock signal of a USB device to a periodic signal contained in USB data traffic, wherein the locking is in respect of phase and/or frequency.

FIELD OF THE INVENTION

[0001] The present invention relates to a method and apparatus forsynchronizing Universal Serial Bus (USB) devices, of particular but byno means exclusive application in synchronizing USB devices connected toa USB host with respect to each other and to an arbitrary precisedegree.

BACKGROUND OF THE INVENTION

[0002] The USB specification is intended to facilitate theinteroperation of devices from different vendors in an openarchitecture. USB data is encoded using differential signalling (viz.two wires transfer the information) in the form of the differencebetween the signal levels of those two wires. The USB specification isintended as an enhancement to the PC architecture, spanning portable,desktop and home environments.

[0003] By way of example, FIG. 1 is a schematic diagram of anillustrative prior art USB device 10 including a digitally controlledtransducer 12. The device 10 includes a bus connector 14, digital I/Obus transfer circuitry 16, a microprocessor 18, and synchronizationchannel 20 for passing synchronization information including trigger andclock signals to the transducer 12.

[0004] The device 10 is connected by means of the bus connector 14 to adigital bus 22 containing USB and synchronization signals.

[0005] The USB specification implicitly assumes that all devices aredifferent. While this is true for the intended environments, whichconnect devices from a multiplicity of manufacturers, there exist otherenvironments (such as certain common industrial or laboratoryenvironments) that require a specification for operating multipledevices of a similar nature in a synchronized manner. The specificationdoes not sufficiently address this issue. Such environments aretypically those where testing, measuring or monitoring is performed,which may require the devices to be synchronized to a more accuratedegree than is specified. The USB specification allows limitedinter-device synchronization by providing a 1 kHz clock signal to alldevices. However, many laboratory and industrial environments requiresynchronization at MHz frequencies and above.

[0006] Referring to FIG. 2, USB employs a tiered star topology 24, wherehubs 26 provide attachment points for USB devices 28. The USB hostcontroller 30 contains the root hub, which is the origin of all USBports in the system. The root hub provides a number of USB ports towhich USB functional devices or additional hubs may be attached.

[0007] In turn, one can attach more hubs (such as USB composite device32) to any of these ports, which then provide additional attachmentpoints via ports for further USB devices 34. In this way, USB allows amaximum of 127 devices (including hubs) to be connected, with therestriction that any device may be at most 5 levels deep.

[0008] The root hub in the host transmits a Start of Frame (SOF) signalpacket every 1.0 ms to every device, the time between two SOF packetsbeing termed a frame. Each module receives this SOF packet at adifferent time, allowing for electrical delays inherent to USB topology.The topology implies that there may be a significant time delay(specified as at most 380 ns) for receiving the same signal between adevice that is connected directly to the host controller and a device,which is 5 levels down. This is a severe restriction when there is aneed to synchronize devices at MHz levels and above.

[0009] Current synchronization between a USB host and a USB device ispossible by two types of USB transfers, Interrupt and Isochronous.Interrupt transfers allow guaranteed polling frequencies of devices withminimum periods of 125 μs, whereas Isochronous transfers guarantee aconstant transfer rate. Both methods require there to be traffic betweenthe device and host for synchronization to take place and thereforereserve more bandwidth for higher degrees of synchronization. Thisunfortunately means that the available USB bandwidth can be used upbefore the maximum number of devices has been connected. This approachalso places on the host the great computational burden of keeping 127devices synchronized to the host by means of software, yet still failsto address maintaining synchrony between the devices as to the host theindividual devices represent separate processes.

[0010] Devices that contain a physical transducer of some kind, such asa laser diode or a photodetector, may require clock and triggerinformation. Such devices, such as a laser diode with a modulated lightoutput at 1 MHz, may use a clock signal to perform transducer functionsat regular intervals or at a constant frequency. A trigger signal isusually used to start or end an operation at a set time. In the laserdiode example, a trigger signal could be used to turn the modulatedlight output on or off.

[0011] These clock and trigger signals or information (referred to belowas synchronization information) can be used to synchronize amultiplicity of devices to each other, provided the signals are commonand simultaneous to all devices. ‘Common’ and ‘simultaneously’ here meanthat the variation in time of these signals between the devices is lessthan a specified quantity, δt. In the laser diode example, this wouldenable a multiplicity of laser diodes to modulate their light output atone frequency. The modulation frequency of all devices would be thesame, and their waveforms would be in-phase. The current USBspecification (viz. 2.0) allows for delays in δt of up to 0.35 μs. For asignal with a frequency of 1 MHz and a period of 1.0 μs, this delayrepresents almost half of the period. It is thus unusable as specifiedas a synchronization signal for routine use.

[0012] Devices like hubs and USB controller chips commonly use someamount of phase locking in order to decode the USB protocol. It is thepurpose of the SYNC pattern in the USB protocol to provide asynchronization pattern for another electronic circuit to lock to.However, this is intended to synchronize the device to the USB bitstreams to an, accuracy sufficient to interpret MHz bit streams. It isnot intended to synchronize two separate devices with each other to anaccuracy required by many test and measurement instruments. The USBspecification—to the extent that it deals with inter-devicesynchronization—is mainly concerned with synchronizing a USB-CD audiostream sufficiently for output on a USB-speaker pair. The requirementsof such an arrangement are in the kHz range and for this, the USBprovides ideal conditions. However, the specification does not addressthe potential problems of synchronizing 100 USB-speaker pairs.

[0013] U.S. Pat. No. 6,343,364 to Leydier et al. discloses an example offrequency locking to USB traffic, which is directed toward a smart cardreader. This patent teaches a local, free-running clock that is comparedto USB SYNC and packet ID streams; its period is updated to match thisfrequency, resulting in a local clock with a nominal frequency of 1.5MHz. This provides a degree of synchronization sufficient to read thesmart card information into the host PC. As this approach is directed toa smart card reader, inter-device synchronization is not addressed.Further, neither a frequency lock to 1 kHz or better stability nor highaccurate phase control is disclosed.

[0014] U.S. Pat. No. 6,012,115 to Chambers et al. addresses the USBstart of frame (SOF) periodicity and numbering for timing. As explainedin the Abstract of U.S. Pat. No. 6,012,115, the disclosed inventionallows a computer system to perform an accurate determination of themoment in time a predetermined event occurred within a real-timeperipheral device by using the start of frame pulse transmitted from aUSB host controller to peripheral devices connected to it.

[0015] U.S. Pat. No. 6,092,210 to Larky et al. discloses a method forconnecting two USB hosts for the purpose of data transfer, by employinga USB-to-USB connecting device for synchronizing local device clocks tothe data streams of both USB hosts. Phase locked loops are used tosynchronize local clocks and over-sampling is used to ensure that dataloss does not occur. This document, however, relates to thesynchronization of two USB hosts with each other (and with limitedaccuracy), not to the synchronization of a multiplicity of USB devicesto a single USB host.

[0016] The USB specification was written with audio applications inmind, and U.S. Pat. No. 5,761,537 to Sturges et al. describes how tosynchronize two or more pairs of speakers with individual clocks, whereone pair operates off a stereo audio circuit in the PC and the otherpair is controlled by the USB. Since both speaker pairs use their ownclocks, they need to be synchronized so this document teaches onetechnique for maintaining synchronization of the audio signals despitepossible clock skew between the asynchronous clocks.

[0017] Although the above is not intended to be exhaustive or todescribe the common general knowledge in this area, it is clear thatthere are deficiencies in the current art.

SUMMARY OF THE INVENTION

[0018] Thus, it is an aim of this invention to supplement the USBspecification by implementing mechanisms which allow any number of USBdevices, up to the maximum allowed, to operate in a synchronized andtriggered manner without placing a great computational burden on thehost. This frees the host for other tasks such as control, datatransfer, logging and analysis.

[0019] In addition to supplementing the USB specification, the presentinvention also has all the advantages of USB, such as the ability tooperate multiple devices via a tree architecture (up to a current totalof 127 devices), hot-swap ability, auto-enumeration, ease-of-use,cross-operating system compatibility, and portability.

[0020] The present invention provides a method and apparatus forsynchronizing USB devices connected to a USB host with respect to eachother. The present invention also provides a back plane that suppliescommon connection points and combinations of one or more of power, USBand synchronization signals to a variety of similar USB devices.

[0021] Specifically, the invention provides, in a first broad aspect, amethod of providing a synchronized multichannel universal serial businvolving supplementing the wires (or equivalent—possiblywireless—signal channels) in the USB specification to providesynchronization information from an external source.

[0022] Preferably said synchronization information includes a triggersignal and a clock signal.

[0023] Thus, by providing such information from an external source,synchronization information can be provided at essentially arbitraryfrequencies.

[0024] In a second broad aspect, the invention provides a synchronizedmultichannel universal serial bus comprising circuitry to observe USBtraffic and to lock a local clock signal of a USB device to a periodicsignal contained in USB data traffic.

[0025] Preferably the circuitry is adapted to lock said local clocksignal to said periodic signal in phase, in frequency, or in both phaseand frequency.

[0026] Preferably said circuitry is operable to decode and lock to USBStart of Frame (SOF) packet tokens (or other periodic data structure).

[0027] The invention also provides a method of synchronizing amultichannel universal serial bus, comprising:

[0028] observing USB traffic; and

[0029] locking a local clock signal of a USB device to a periodic signalcontained in USB data traffic;

[0030] wherein said locking is in respect of phase, of frequency, or ofboth phase and frequency.

[0031] In a third broad aspect, the invention provides a synchronizedmultichannel universal serial bus having circuitry to observe the USBtraffic at a plurality of points in a USB tree and to measure a roundtrip time of each of a plurality of individual packets, to obtainrelative phases of individual USB devices in said tree.

[0032] Preferably said circuitry is operable to measure the roundtriptime of an ACK packet associated with a particular transaction, wherebythe relative phase of each device's local clock can be controlled sothat all attached USB devices can be synchronized.

[0033] The invention also provides a method of synchronizing amultichannel universal serial bus, comprising:

[0034] observing USB traffic at a plurality of points in a USB tree;

[0035] measuring a round trip time of each of a plurality of individualpackets; and

[0036] determining relative phases of individual USB devices in saidtree from said respective round trip times;

[0037] whereby any phase offsets of said respective individual USBdevices can be adjusted according to said determined relative phases.

[0038] In a fourth broad aspect, the invention provides a method ofproviding a synchronized multichannel universal serial bus comprising:

[0039] issuing all devices in a USB topology with a trigger signal.

[0040] Preferably the trigger signal synchronously initiates or ceasesoperations on a plurality of devices.

[0041] Preferably said trigger signal is produced by using an SOF packet(preferably including encoded frame number), to trigger a transducer ata given time.

[0042] Preferably the method includes executing said operation in phasewith a local oscillator.

[0043] This is preferred because, owing to the USB connection topology,the arrival times of the SOF packet can differ between devices and, inaddition, the USB specification allows for significant temporal jitterin the SOF packet frequency with respect to the phase-locked localoscillator. This can result in the clock being out of phase by afraction of a cycle.

[0044] The invention also provides a synchronized multichannel universalserial bus, comprising:

[0045] circuitry for issuing all devices in a USB topology with atrigger signal.

[0046] In a fifth broad aspect, the invention provides a synchronizedmultichannel universal serial bus including circuitry and logic tosupply synchronization signals to USB devices at frequencies thatcorrespond to national standards (such as NIST and NATA).

[0047] Indeed, this approach can be employed with the other aspects ofthis invention.

[0048] In a sixth broad aspect, the invention provides a synchronizedmultichannel universal serial bus including a USB back plane to provideto attachable devices any one or more of USB signals, power, sockets andsynchronization information.

[0049] The bus may also provide a mechanically supportive structure.

[0050] Combinations of these aspects to synchronize devices to eachother are also possible. Requirements of temporal accuracy, cost andease-of-use may place restrictions on which of these methods can be usedfor a certain application. In addition, apparatuses according to theinvention can be embodied in various ways. For example, such devicescould be constructed in the form of multiple components on a PCB, or atthe semiconductor level, that is, as a single silicon (or othersemiconductor material) chip.

[0051] Thus, the invention also provides a method for locking the localclock of each of a plurality of USB devices within the same USB tree tosubstantially the same frequency, comprising:

[0052] generating or designating specific signal structures fortransmission in the USB data traffic;

[0053] transmitting said specific signal structures to said USB devicein a predefined sequence;

[0054] monitoring USB signals local to said USB device for said specificsignal structures;

[0055] generating a local reference signal at each of said USB devicesfrom said specific signal structures; and

[0056] locking the frequency of said local clock signal at each of saidUSB devices to said local reference signal to a predetermined degree.

[0057] Preferably the specific signal structures are the USB Start ofFrame packet token sequences as defined in the USB specification.Alternatively, the specific signal structures are command sequences sentto the USB device or data sequences sent to the USB device.

[0058] Preferably the method further includes generating said localreference signal for each of said specific signal structures.

[0059] Preferably the method further includes generating said localreference signal for substantially all of said specific signalstructures.

[0060] Preferably the local clock frequency is substantially the same assaid local reference signal frequency.

[0061] Preferably the locking of each of said local clock signals tosaid reference signal is for the purpose of generating a frequency witha stability better than that required for pure transfer of data betweena host and a respective USB device.

[0062] Preferably the method further includes passively synchronizingsaid USB devices to an arbitrary degree by attachment said USB devicesto a common USB hub by cables of substantially equal length.

[0063] The invention still further provides a method of measuring thepropagation time of signals from a USB host to a USB device within a USBtree, comprising:

[0064] designating a master USB device in said USB tree;

[0065] generating or designating specified signal structures fortransmission in the USB data traffic;

[0066] transmitting said specified signal structures to said USB devicein a predefined sequence;

[0067] monitoring said USB traffic by means of said master USB devicefor said specified signal structures and for specified response signalsfrom said USB device;

[0068] generating event triggering signals local to said master USBdevice corresponding to decoding of said specified signal structures;

[0069] generating event triggering signals local to said master USBdevice corresponding to decoding of response signals from said USBdevice;

[0070] measuring a time interval between said event triggering signalsin said master USB device; and

[0071] determining a propagation time from said USB host to said USBdevice from said time interval.

[0072] Preferably the master USB device is attached near the top of saidUSB tree.

[0073] Preferably the method further includes transmitting saidspecified signal structures to said USB device in said predefinedsequence.

[0074] Preferably the specified signal structures comprise OUT tokens,IN tokens, ACK tokens, NAK tokens, STALL tokens, PRE tokens, SOF tokens,SETUP tokens, DATAO tokens, DATAL tokens, or programmable sequences bitpatterns in the USB data packets.

[0075] Preferably the USB device is one of a plurality of USB devices,and said method includes determining a respective propagation time foreach of said USB devices including statistically analyzing a pluralityof such propagation determinations to improve accuracy of saidpropagation delay measurement.

[0076] The present invention yet further provides a method ofdetermining the relative propagation delay of electrical signals or datastructures between a plurality of USB devices connected to a common USBhost, comprising:

[0077] determining respective propagation delays between each of saidUSB devices and said USB host according to the method described above;

[0078] designating one of said USB devices as a temporal referencedevice; and

[0079] determining the difference in said propagation delay between saidtemporal reference device and each of said plurality of said USBdevices.

[0080] The present invention also provides a method of synchronizing thelocal clocks of each of a plurality of USB devices connected to a commonUSB host via a USB tree so that said clocks are substantially in phaseand at substantially the same frequency, comprising:

[0081] locking the local clock of each of said USB devices tosubstantially the same frequency according to the method describedabove;

[0082] determining the relative propagation delay of signals from saidUSB host to each of said USB devices with respect to a selected one ofsaid USB devices according to the method described above, said selectedone of said USB devices designated a reference USB device;

[0083] determining the relative phase of said local clock of each ofsaid plurality of USB devices with respect to said local clock of saidreference USB device according to the method described above;

[0084] determining the temporal adjustment or phase offset of each ofsaid local clocks required to result in said plurality of local clocksacross said USB tree being substantially in phase;

[0085] transmitting said temporal adjustment or phase offset from saidUSB host to said USB devices; and

[0086] providing phase adjustment of said local clock on each of saidUSB devices according to said temporal adjustment or phase offsetrespectively.

[0087] Preferably each of the local clocks of at least some of said USBdevices are shifted in phase by a desired amount, resulting in an arrayof USB devices with local clocks of known relative phases.

[0088] In addition, the present invention provides a method forsynchronously triggering and thereby initiating or stopping one or moreprocesses on a plurality of USB devices connected to a common USB hostaccording to a predefined trigger command, comprising:

[0089] synchronizing the local clocks of each of said USB devicesaccording to the method described above;

[0090] transmitting a predetermined trigger request signal and apredetermined trigger command signal in the USB data traffic, indicativerespectively of a trigger request and of said trigger command;

[0091] monitoring said USB data traffic local to each of said USBdevices for said trigger request signal and for said trigger commandsignal;

[0092] sending an initiating trigger request signal by means of said USBhost to each of said USB devices to prepare said USB devices to executesaid trigger request at substantially the same time;

[0093] configuring said USB devices to respond to said initiatingtrigger request signal by preparing themselves to perform said processeson receipt said trigger signal;

[0094] configuring said USB host to issue said trigger command to eachof said plurality of said USB;

[0095] decoding said trigger command by means of said USB devices;

[0096] configuring said USB devices to execute said processes atsubstantially the same time; and

[0097] whereby one or more processes within said USB devices can beinitiated or stopped upon receipt of said trigger command signal fromsaid USB host.

[0098] Preferably the trigger request signal comprises any of the USBpacket signal structures defined in the USB specification, commandsequences sent to the USB device, or data sequences sent to the USBdevice.

[0099] Preferably the method includes transmitting said trigger requestsignal and said trigger command signal in a predetermined sequence.

[0100] Preferably the trigger command signal comprises any of the USBpicket signal structures defined in the USB specification, commandsequences sent to the USB device, or data sequences sent to the USBdevice.

[0101] Preferably the local USB decoding device is a microcontroller, amicroprocessor, a field programmable gate array or any other elementcapable of decoding data structures within said USB.

[0102] Each of the trigger request signal and the initiating triggerrequest signal preferably comprises OUT tokens, IN tokens, ACK tokens,NAK tokens, STALL tokens, PRE tokens, SOF tokens, SETUP tokens, DATA0tokens, DATAL tokens, or programmable sequences bit patterns in the USBdata packets.

[0103] Preferably the trigger command is encoded into said USB trafficusing a signal protocol defined within the USB specification.

[0104] Preferably each of said USB devices receives a clock signal froman external source.

[0105] Preferably the clock signals are received through an additionalelectrical or optical connector, or through wireless means.

[0106] The present invention further provides an apparatus for lockingthe local clock of each of a plurality of USB devices within the sameUSB tree to substantially the same frequency, comprising:

[0107] a signal generator for generating specific signal structures inthe USB data traffic, for transmitting said specific signal structuresto said USB device in a predefined sequence, and for generating a localreference signal at each of said USB devices from said specific signalstructures; and

[0108] a signal monitor for monitoring USB signals local to said USBdevice for said specific signal structures;

[0109] whereby said frequency of said local clock signal at each of saidUSB devices can be locked to said local reference signal to a desireddegree.

[0110] The present invention also provides an apparatus for measuringthe propagation time of signals from a USB host to a USB device within aUSB tree, comprising:

[0111] a master USB device comprising one of the USB devices in said USBtree;

[0112] a signal generator or root hub for generating specified signalstructures in the USB data traffic, for transmitting said specifiedsignal structures to said USB device in a predefined sequence;

[0113] a signal monitor for monitoring said USB traffic by means of saidmaster USB device for said specific signal structures and for saidresponse signals; and

[0114] a timer for measuring a time interval between said eventtriggering signals in said master USB device; and

[0115] whereby a propagation time from said USB host to said USB devicecan be determined from said time interval.

[0116] Still further, the invention provides an apparatus fordetermining the relative propagation delay of electrical signals or datastructures between a plurality of USB devices connected to a common USBhost, comprising:

[0117] an apparatus for determining respective propagation times betweeneach of said USB devices and said USB host as described above; and

[0118] computing means for determining the difference in saidpropagation times between a reference USB device and each of saidplurality of said USB devices,

[0119] wherein said reference USB device comprises one of said USBdevices.

[0120] The invention in one embodiment provides an apparatus forsynchronizing the local clocks of each of a plurality of USB devicesconnected to a common USB host via a USB tree so that said clocks aresubstantially in phase and at substantially the same frequency,comprising:

[0121] an apparatus for locking said local clock of each of said USBdevices to substantially the same frequency as described above;

[0122] an apparatus for determining the relative propagation delay ofsignals from said USB host to each of said USB devices with respect to areference USB device and for determining the relative phase of saidlocal clock of each of said plurality of USB devices with respect tosaid local clock of said reference USB device as described above, saidreference USB device comprising a selected one of said USB devices; and

[0123] a timer for determining the temporal adjustment or phase offsetof each of said local clocks required to result in said plurality oflocal clocks across said USB tree being substantially in phase;

[0124] wherein said apparatus is adapted to transmit said temporaladjustment or phase offset from said USB host to said USB devices and toprovide phase adjustment of said local clock on each of said USB devicesaccording to said temporal adjustment or phase offset respectively.

BRIEF DESCRIPTION OF THE DRAWING

[0125] In order that the present invention may be more clearlyascertained, embodiments will now be described, by way of example, withreference to the accompanying drawing, in which:

[0126]FIG. 1 is a schematic diagram of an illustrative prior art USBdevice;

[0127]FIG. 2 is a schematic diagram of a prior art USB tiered startopology;

[0128]FIG. 3 is a schematic diagram of a synchronized USB circuitaccording to a first embodiment of the present invention, in whichsynchronization information is passed to a device;

[0129]FIG. 4 is a schematic diagram of a synchronized USB circuitaccording to a second embodiment of the present invention, in which USBtraffic is observed and the USB device's local clock signal is locked tothe USB SOF packet in phase and frequency;

[0130]FIG. 5A is a schematic diagram of a synchronized USB circuitaccording to a third embodiment of the present invention, in which theroundtrip time of an ACK packet associated with a particular transactionis measured to control the relative phase of the local clock of each ofa plurality of devices;

[0131]FIG. 5B is a timing diagram for the transaction of FIG. 5A fordevice 62;

[0132]FIG. 5C is a timing diagram for the transaction of FIG. 5A fordevice 60.

[0133]FIG. 6 is a schematic diagram of a synchronized USB circuitaccording to a fourth embodiment of the present invention, in whichcircuitry is provided for spying on a USB and locking the signal from alocal clock to a SOF packet of USB in phase and frequency;

[0134]FIG. 7 is a simplified schematic diagram of one example of asynchronized USB circuit according to a combination of embodiments ofthe present invention, where synchronization is provided withoutadditional connector wiring;

[0135]FIG. 8 is a schematic diagram of a complex synchronized USBcircuit combining a plurality of embodiments of the present invention,where synchronization is provided without additional connector wiring;

[0136]FIG. 9 is a simplified schematic diagram of another example of asynchronized USB circuit according to a combination of embodiments ofthe present invention, where synchronization is obtained with the use ofadditional connector wiring;

[0137]FIG. 10 is a simplified schematic diagram of a further example ofa synchronized USB circuit according to a combination of embodiments ofthe present invention, comparable to but more complex than that of FIG.8; and

[0138]FIG. 11 is a simplified schematic diagram of a variation of theexample of FIG. 10.

DETAILED DESCRIPTION

[0139] According to a first embodiment of the invention, thesynchronization information is passed to the device. FIG. 3 is aschematic diagram of a USB device 10′ (similar to that of FIG. 1, fromwhich like reference numbers are adopted to refer to like features)including a digitally controlled transducer 12. According to thisembodiment, however, the number of wires is increased to include achannel for providing synchronization information containing trigger andclock signals from an external source.

[0140] The synchronization information (including trigger and clocksignals) is provided from an external source 24 to the bus connector 14,so that the synchronization information provided by synchronizationchannel 20 to the transducer 12 includes the externally providedsynchronization information.

[0141] The device 10′ thus does not contain logic or circuitry togenerate synchronization information with regard to other devices.

[0142] USB communication is based on transferring data during regular 1ms intervals called frames. A start of frame (SOF) packet is transmittedto all but low speed devices at the beginning of each frame (hencerepetitively at 1 kHz) and therefore represents a low resolutionsynchronization signal for every device connected to one common USB portof the host. Thus, according to a second embodiment of the invention,the USB traffic is observed, and the USB device's local clock signal islocked to the USB SOF packet in phase and frequency.

[0143] As is well understood in the art, the USB specification definesseveral unique data structures called TOKENS which are used as packetheaders for control and administration functions of the bus. The SOFpacket has a unique digital signature, and can therefore bedistinguished from other data, which may also be present on the bus.According to this embodiment, a logic circuit or matched filter may beused to decode the sequence of bits by which an SOF TOKEN is representedand issue a timing signal for every SOF packet present on the USB. Sincethe SOF occurs at a specified frequency and is common to all devicespresent, it and the decoded timing signal, can be used by all devices asa common frequency reference. In order to generate a frequency differentto the 1 kHz of the SOF, a phase-locked loop (PLL) can be utilized tolock a local oscillator in frequency and phase to the SOF and timingsignal. This has the added advantage, that the PLL can be used toaverage out jitter in the SOF time of arrival. Therefore, the frequencyof the local oscillator need not be different to that of the SOF packet.

[0144] Referring to FIG. 4, the method of this second embodiment employscircuitry to observe traffic through USB 40 and decode all SOF packets.The signal (from a local controlled oscillator clock 42 is locked to theUSB 1 kHz SOF packet in phase and frequency. This first requires thesignal Φ from clock 42 to be divided by a clock frequency divider 46down to the frequency of the SOF packet (e.g. from an output frequencyof 1 MHz down to 1 kHz); matched filter 48 sends a clock synch signal 50when a SOF packet arrives (nominally at 1 kHz), which passes to a phasedetector 52. The phase detector 52 is coupled to the controlledoscillator clock 42 via a filter 56.

[0145] The local clock signal Φ is subsequently supplied to thetransducer circuitry on the USB device, thus ensuring all devicesattached to the root hub are locked in frequency.

[0146] According to this embodiment, it is possible to produce a clocksignal stable to arbitrarily high frequencies, such as a clock frequencyof tens of megahertz with stochastic jitter as low as a few nanoseconds.Thus, this embodiment allows one to ensure that the local clock of eachdevice connected to a given USB is synchronized in frequency. However,it does not consider the synchronicity of those clocks. Each clock willbe locked in frequency and phase to the receipt of the SOF TOKEN, buteach device will receive the SOF packet at a substantially differenttime owing to differences in the signal propagation time of a randomlyconnected USB star topology. Synchronization of the local clock of eachof a plurality of USB devices (such that all clocks are in phase)requires knowledge of said signal propagation time from the host to eachdevice.

[0147] According to a third embodiment, the local clocks of each of aplurality of USB devices are synchronized to an arbitrary degree. TheUSB traffic is monitored at various attachment points in the USB treeand the propagation times of specific USB communication transactions aremeasured, to obtain and compensate for the phase differences between thelocal clocks of different devices that are due to electronic and cabledelays. According to this embodiment, the roundtrip propagation time ofa specific data packet from Host to Device and the associated USBacknowledgement ACK TOKEN from the Device for each device present aremeasured. This information is used to control the relative phase of eachdevice's local clock, thereby synchronizing all attached USB devices toeach other to an arbitrary degree.

[0148] The USB specification allows the local time of two devices todiffer by up to 380 ns. However, if two independent devices are toaccurately record the real time of the same event, their local time mustbe determined to an effectively arbitrarily precise degree.

[0149]FIG. 5A depicts schematically two devices 60 and 62, which areattached at different points in a USB chain 64. USB chain 64 alsocomprises a USB Host Controller 66 and multiple 7 port USB hubs 68.Devices 60 and 62 will both receive the same periodic SOF signal towhich they have independently locked their local clocks in frequency andphase. However, device 62 will receive the SOF packet later than device60 owing to a topological time delay introduced by the greater number ofUSB hubs 68 between USB Host Controller 66 and device 62. This temporaldifference needs to be calculated from time delay measurements andcorrected for.

[0150] The particular attachment point of device 60 is unimportantprovided it is located such that it can decode Bus traffic for itselfand device 62 as shown by the symbol “A” on FIG. 5A (i.e. device 60 mustbe able to decode Bus traffic for all devices requiringsynchronization). The connection point for device 60 is thereforepreferably substantially near the top of the USB tree or chain, as shownin FIG. 5A.

[0151] In order to measure said round trip propagation time a USBtransaction is conducted between the Host and device 62. Device 60monitors USB traffic at point “A” in the tree and detects the passage ofboth the downstream and response data packets of the transaction. It isthen possible for Device 60 to determine the period of time betweendetection of the downstream signal from the Host to device 62 (beginningof the transaction) and the response signal from device 62 to the Host(end of the transaction) at point “A” of FIG. 5A. In a preferableembodiment, the response signal from device 62 to the Host is an ACKTOKEN of a transaction acknowledgement ACK packet.

[0152] The round trip propagation time for a USB transaction between theHost and device 60 relative to point “A” can be determined in a similarmanner. The connection topology based temporal phase shift between thefrequency locked clocks in device 60 and device 62 is then given bysubstantially half the difference in the round trip propagation time forthe two devices with respect to the same point “A”. The frequency lockedclock in device 62 is therefore phase delayed with respect to thefrequency locked clock in device 60 by this amount. In order tosynchronize the clocks in devices 60 and 62 in both frequency and phase,a phase offset corresponding to the said amount must be introduced intoone of the clocks. This is most achieved by introducing a phase delayinto the clock signal local to device 60.

[0153]FIGS. 5B and 5C further illustrate this approach. FIG. 5B is atiming diagram for the transaction of FIG. 5A for device 62, while FIG.5C is a timing diagram for the transaction of FIG. 5A for device 60. TheUSB transaction starts for each device 60, 62 at T_(Start X) and endswhen the device returns an ACK packet as shown by T_(ACK X). (where inboth cases X represents the device number). These transactions do notbegin at the same time but the figures have been aligned with respect toT_(Start X) to show the relative duration of the transactions. Device 60is much closer to the detection point “A” in FIG. 5A, so the round trippropagation time is significantly shorter than that for device 62. Thedifference in propagation time is shown as ΔT. The phase offset betweenthe two frequency locked clocks is therefore given by ½ΔT.

[0154] It will be clear to the skilled person that there are othermethods of determining the required phase corrections. It will also beunderstood by the skilled person that other USB data protocols may beused for generating local clock frequency and determining either theround trip or one-way propagation time, including but not limited to anyof the USB control and administration packet TOKENS (namely SOF, IN,OUT, ACK, NAK, PRE, STALL, DATA0, DATA1), any programmable sequences ofbit patterns in the USB data packets, any user defined data structure orany signal protocol defined within the USB specification.

[0155] Above are described techniques for locking the local oscillatorsof USB devices in phase and frequency to achieve synchronous operationof a multiplicity of USB devices. This local oscillator generates acontinuous modulation. The devices may also be required to synchronize aparticular sequence of operations in time. The devices will thereforeneed a so-called common trigger signal to achieve this. This triggersignal can be used in conjunction with the frequency-locked localoscillator to achieve complete, synchronous operation of multiple,independent USB devices.

[0156] According to a fourth embodiment, a synchronous trigger signalfor a transducer on a given device is produced by using the SOF packetincluding the encoded frame number, to trigger a transducer at a giventime. However, owing to the USB connection topology, the arrival timesof the SOF packet can differ between devices and, in addition, the USBspecification allows for significant temporal jitter in the SOF packetfrequency with respect to the phase-locked local oscillator. This mayresult in the clock being out of phase by a fraction of a cycle.However, the trigger signal should be in-phase with the localoscillator.

[0157] To eliminate the problems of jitter the SOF signal is latched tothe local oscillator. The latch registers the arrival of an SOF triggerrequest, but only produces a trigger signal when the local oscillatornext changes state. The error in trigger times between different devicesis a function of the device's local clock frequency and properties ofthe control loop and can be made arbitrarily small.

[0158] Thus, FIG. 6 is a schematic diagram of a circuit 70 formonitoring the USB 72 and locking the clock signal Φ from a local clock74 (with output frequency downshifted to 1 kHz—if necessary—by clockfrequency divider 76) to the 1 kHz SOF packet of USB 72 in phase andfrequency. A first matched filter 80 sends a clock sync signal 82 whenan SOF packet arrives in order to frequency and phase lock said localclock 74 (as in FIG. 4), while second matched filter 84 sends a triggerrequest signal 86 when an SOF packet with a specific frame numberarrives. Like the circuit of FIG. 4, this circuit also includes a filter90 and a phase detector 92. The trigger request signal is latched to thelocal stabilized local clock signal Φ to produce the synchronizedtrigger signal “Trig”.

[0159] According to a fifth embodiment, circuitry and logic are used tosupply synchronization signals to USB devices at frequencies which aretraceable to national standards, such as NIST or NATA. This is achieved,for example, by replacing clocks and/or crystals in any of the hubs,including the root hub, with frequency references traceable to anational standard.

[0160] According to a sixth embodiment, a USB back plane is provided tosupply—attachable devices—power, USB signals, connectors andsynchronization information.

[0161] In its most complex state a USB back plane contains poweradditional to USB, making for self-powered devices, hub circuitry toprovide a multiplicity of ports, a plurality of connectors associatedwith those ports providing a plurality of hot pluggable deviceattachment points and USB signals that satisfy the USB specification. Itmay also contain logic elements such as microprocessors, programmablearrays, and digital and analogue electronics to regulate and providesynchronization information including frequency, phase and trigger usingvarious techniques described above, as well as power-on/off sequences.In addition to one or many hubs, a back plane can also contain devicesthat are attached to one of the USB ports provided by the Hubs.Alternatively, it can be a composite device that provides hub andsynchronization functionality. In this way, synchronization informationis measurable and programmable on-the-fly.

EXAMPLES

[0162] The above described embodiments can be employed in a variety ofways. These, however, can be divided into devices that supplement theUSB connector terminals with synchronization terminals and those that donot. Additionally, the logic elements of the second to fifth embodimentscan be located either on the USB device, on the back plane (if a backplane solution is desired), on both, or not be present at all.

[0163] It will be understood that, depending on the requirements of theapplication, one may or may not want to implement the back planesolution. The application also determines if additional power needs tobe supplied to the devices.

Example 1 With No Additional Connector Wiring for Synchronization

[0164] The advantage of a system according to the present invention thatdoes not depend on supplementary synchronization signals is that thedevices are not reliant on this information to work in a synchronizedmanner, and hence ordinary hubs can be used on any standalone host. Sucha system can be extended to devices that require very accuratesynchronization. Thus, an example of such a system is shown in FIG. 7generally at 96, with upstream USB port 98 and a plurality of back planehub devices 100, 102 (each, in this example, a 7-port USB hub on backplane 104), which may optionally supply additional power to a pluralityof devices 106. Each device 106 may contain a local clock that isfrequency and phase locked according to the above-described secondembodiment. The back plane 104 and the hubs 100, 102 have the ability totime phase differences between devices 106 (each with random cablelength according to the USB specification) by means of device 108 andthe techniques described above in the context of the third embodiment.Furthermore, each device 106 contains a phase shift generator for thelocal clock that operates according to the techniques described above inthe context of the third embodiment.

Example 2

[0165] A complex system comprising many synchronous USB devices is shownin FIG. 8 generally at 110. Upstream port 111 receives USB communicationfrom the Host. The system 110 includes a plurality of back planes 112,113, 114 each provided with two back plane hub devices 115. Each backplane hub devices 115 comprises a 7-port USB hub and may optionallysupply additional power to a plurality of devices 116. Each device 116may contain a local clock which is frequency and phase locked accordingto the above-described second embodiment. Further, first or master backplane 112 also has additional circuitry or logic elements 117 (as inFIG. 7), and has the ability to time phase differences between devices116 (each with different connection topology) by means of elements 117and the techniques described above in the context of the thirdembodiment. Furthermore each device 116 contains a phase shift generatorfor phase shifting the local clock using the techniques described abovein the third embodiment. There may be additional devices and/or hubsand/or back planes connected to downstream ports 118 up to the maximumnumber of 127 devices defined in the USB specification.

[0166] In addition, the frequency provided by an upstream root hub maybe generated by a frequency reference in accordance with the fifthembodiment and any trigger signals may be generated using the approachof the fourth embodiment.

Example 3 Additional Connector Wiring for Synchronization

[0167] The simplest example of such an approach according to theabove-described embodiments is achieved by connecting all devices to acommon synchronization signal either through a proprietary connectorcontaining USB and synchronization information or through a USBconnector, as well as a separate synchronization link. Thesynchronization information is independent of the USB traffic and cantherefore be of arbitrary frequency without any great difficulty. Themedium for the synchronization information can be any of wireless,electrical or fiber optic means. FIG. 9 depicts schematically apractical example of such a circuit at 120. The circuit 120 includes, ineffect, a pair of circuits each comparable to that of FIG. 7, so that 24USB devices 122 are connected via 7-port USB hubs 124; these in turn canbe connected to a PC via upstream USB ports 126. The USB connectiontopology has no influence on the synchronization signal, which issupplied separately to the devices by an external clock 128 of frequencyΦ. Thus, the devices 122 are connected to the USB and thesynchronization signal via either one connector (with connections inaddition to the USB requirements) or a standard USB connector plus oneor more additional connectors.

[0168] In a more complex form of this example, a back plane containingadditional logic elements is used, the logic elements providing accuratecontrol and lock in frequency and phase for all attached devices. Insuch an arrangement, the back plane logic elements observe USB trafficand generate their own local clock according to the approach of theabove-described second and third embodiments. This back plane generatedclock is then distributed to each attached USB Device through one ormore backplane connectors described above.

[0169] Referring to FIG. 10, therefore, which depicts such anarrangement generally at 130, each device 132 is connected to circuitry134 through additional connector terminals 136 (electrical, wireless,fiber-optic), which supplement the USB specification. As an example, thecircuitry could be located on a back plane 138 to which the variousmodules are connected. This back plane 138 also contains one or more7-port USB hubs 140. The circuitry 134 monitors the USB at USB upstreamport 142 for a start of frame signal and locks the frequency and phaseof its internal clock to this signal (as per the second embodiment). Thecircuitry 134 can also arbitrarily delay the incoming clock signal, toaccount for delays due to USB topology (cf. the third embodiment). Theinternal clock is then made available to each device 132 via theadditional connector terminal. In this way, all devices 132 receive acommon clock signal to synchronize with.

[0170] It should be noted that in the previously described figures, thesynchronization circuitry is drawn separate to the hubs. In anothervariation, however, shown in FIG. 11 at 150, one hub is a compositedevice 152 (connected to USB upstream port 154), containing bothexpansion ports 156 and the synchronization circuitry 158 (whichgenerates local clock signals according to embodiment two and usingtechniques described in embodiment three to provide phase shift of thelocal clock to provide synchronization with other devices), which freesup a port 160 of second hub 162 (when compared to the examples discussedabove) so that—in the simple configuration shown in FIG. 11—up to 13devices 164 can be attached.

[0171] It should also be noted also that the USB specification does notrestrict the number of ports per hub to be seven. Hence in FIG. 10 therecould be one hub 140 that services, for example, 12 ports.

[0172] Modifications within the spirit and scope of the invention may bereadily effected by those skilled in the art. It is to be understood,therefore, that this invention is not limited to the particularembodiments described by way of example hereinabove. For the purposes ofthis specification it should be understood that the word “comprising”means “including but not limited to”, and that the word “comprises” hasa corresponding meaning.

[0173] Further, any reference herein to prior art is not intended toimply that such prior art forms or formed a part of the common generalknowledge.

1. A method of providing a synchronized multichannel universal serialbus, comprising: supplementing the signal channels in the USBspecification to provide synchronization information from an externalsource.
 2. A method as claimed in claim 1, wherein said synchronizationinformation includes a trigger signal and a clock signal.
 3. Asynchronized multichannel universal serial bus comprising circuitry toobserve USB traffic and to lock a local clock signal of a USB device toa periodic signal contained in USB data traffic.
 4. A universal serialbus as claimed in claim 3, wherein said circuitry is adapted to locksaid local clock signal to said periodic signal in phase, in frequency,or in both phase and frequency.
 5. A universal serial bus as claimed inclaim 3, wherein said circuitry is operable to decode and lock to aperiodic data structure.
 6. A universal serial bus as claimed in claim5, wherein said circuitry is operable to decode and lock to USB Start ofFrame packet tokens.
 7. A method of synchronizing a multichanneluniversal serial bus, comprising: observing USB traffic; and locking alocal clock signal of a USB device to a periodic signal contained in USBdata traffic; wherein said locking is in respect of phase, of frequency,or of both phase and frequency.
 8. A synchronized multichannel universalserial bus having circuitry to observe USB traffic at a plurality ofpoints in a USB tree and to measure a round trip time of each of aplurality of individual packets, to obtain relative phases of individualUSB devices in said tree.
 9. A universal serial bus as claimed in claim8, wherein said circuitry is operable to measure the roundtrip time ofan ACK packet associated with a particular transaction, whereby therelative phase of each device's local clock can be controlled so thatall attached USB devices can be synchronized.
 10. A method ofsynchronizing a multichannel universal serial bus, comprising: observingUSB traffic at a plurality of points in a USB, tree; measuring a roundtrip time of each of a plurality of individual packets; and determiningrelative phases of individual USB devices in said tree from saidrespective round trip times; whereby any phase offsets of saidrespective individual USB devices can be adjusted according to saiddetermined relative phases.
 11. A method of providing a synchronizedmultichannel universal serial bus comprising: issuing all devices in aUSB topology with a trigger signal.
 12. A method as claimed in claim 11,wherein said trigger signal synchronously initiates or ceases operationson a plurality of devices.
 13. A method as claimed in claim 11, furtherincluding producing said trigger signal by using a Start of Framepacket, to trigger a transducer at a given time.
 14. A method as claimedin claim 11, including executing said operation in phase with a localoscillator.
 15. A synchronized multichannel universal serial bus,comprising: circuitry for issuing all devices in a USB topology with atrigger signal.
 16. A synchronized multichannel universal serial bus,comprising circuitry and logic to supply synchronization signals to USBdevices at frequencies that correspond to national standards.
 17. Asynchronized multichannel universal serial bus comprising a USB backplane for providing to attachable devices any one or more of USBsignals, power, sockets and synchronization information.
 18. A methodfor locking the local clock of each of a plurality of USB devices withinthe same USB tree to substantially the same frequency, comprising:generating or designating specific signal structures for transmission inthe USB data traffic; transmitting said specific signal structures tosaid USB device in a predefined sequence; monitoring USB signals localto said USB device for said specific signal structures; generating alocal reference signal at each of said USB devices from said specificsignal structures; and locking the frequency of said local clock signalat each of said USB devices to said local reference signal to apredetermined degree.
 19. A method as claimed in claim 18, wherein saidspecific signal structures are the USB Start of Frame packet tokensequences as defined in the USB specification.
 20. A method as claimedin claim 18, wherein said specific signal structures are commandsequences sent to the USB device or data sequences sent to the USBdevice.
 21. A method as claimed in claim 18, further includinggenerating said-local reference signal for each of said specific signalstructures.
 22. A method as claimed in claim 18, further includinggenerating said local reference signal for substantially all of saidspecific signal structures.
 23. A method as claimed in claim 18, whereinsaid local clock frequency is substantially the same as said localreference signal frequency.
 24. A method as claimed in claim 18, whereinsaid locking of each of said local clock signals to said referencesignal is for the purpose of generating a frequency with a stabilitybetter than that required for pure transfer of data between a host and arespective USB device.
 25. A method as claimed in claim 18, furtherincluding passively synchronizing said USB devices to an arbitrarydegree by attachment said USB devices to a common USB hub by cables ofsubstantially equal length.
 26. A method of measuring the propagationtime of signals from a USB host to a USB device within a USB tree,comprising: designating a master USB device in said USB tree; generatingor designating specified signal structures for transmission in the USBdata traffic; transmitting said specified signal structures to said USBdevice in a predefined sequence; monitoring said USB traffic by means ofsaid master USB device for said specified signal structures and forspecified response signals from said USB device; generating eventtriggering signals local to said master USB device corresponding todecoding of said specified signal structures; generating eventtriggering signals local to said master USB device corresponding todecoding of response signals from said USB device; measuring a timeinterval between said event triggering signals in said master USBdevice; and determining a propagation time from said USB host to saidUSB device from said time interval.
 27. A method as claimed in claim 26,wherein said master USB device is attached near the top of said USBtree.
 28. A method as claimed in claim 26, further includingtransmitting said specified signal structures to said USB device in saidpredefined sequence.
 29. A method as claimed in claim 26, wherein saidspecified signal structures comprise OUT tokens, IN tokens, ACK tokens,NAK tokens, STALL tokens, PRE tokens, SOF tokens, SETUP tokens, DATA0tokens, DATA1 tokens, or programmable sequences bit patterns in the USBdata packets.
 30. A method as claimed in claim 26, wherein said USBdevice is one of a plurality of USB devices, and said method includesdetermining a respective propagation time for each of said USB devicesincluding statistically analyzing a plurality of such propagationdeterminations to improve accuracy of said propagation delaymeasurement.
 31. A method of determining the relative propagation delayof electrical signals or data structures between a plurality of USBdevices connected to a common USB host, comprising: determiningrespective propagation delays between each of said USB devices and saidUSB host according to the method of claim 26; designating one of saidUSB devices as a temporal reference device; and determining thedifference in said propagation delay between said temporal referencedevice and each of said plurality of said USB devices.
 32. A method ofsynchronizing the local clocks of each of a plurality of USB devicesconnected to a common USB host via a USB tree so that said clocks aresubstantially in phase and at substantially the same frequency,comprising: locking the local clock of each of said USB devices tosubstantially the same frequency according to the method of claim 18;determining the relative propagation delay of signals from said USB hostto each of said USB devices with respect to a selected one of said USBdevices according to the method of claim 26, said selected one of saidUSB devices designated a reference USB device; determining the relativephase of said local clock of each of said plurality of USB devices withrespect to said local clock of said reference USB device according tothe method of claim 31; determining the temporal adjustment or phaseoffset of each of said local clocks required to result in said pluralityof local clocks across said USB tree being substantially in phase;transmitting said temporal adjustment or phase offset from said USB hostto said USB devices; and providing phase adjustment of said local clockon each of said USB devices according to said temporal adjustment orphase offset respectively.
 33. A method as claimed in claim 32, whereineach of the local clocks of at least some of said USB devices areshifted in phase by a desired amount, resulting in an array of USBdevices with local clocks of known relative phases.
 34. A method forsynchronously triggering and thereby initiating or stopping one or moreprocesses on a plurality of USB devices connected to a common USB hostaccording to a predefined trigger command, comprising: synchronizing thelocal clocks of each of said USB devices according to the method ofclaim 32; transmitting a predetermined trigger request signal and apredetermined trigger command signal in the USB data traffic, indicativerespectively of a trigger request and of said trigger command;monitoring said USB data traffic local to each of said USB devices forsaid trigger request signal and for said trigger command signal; sendingan initiating trigger request signal by means of said USB host to eachof said USB devices to prepare said USB devices to execute said triggerrequest at substantially the same time; configuring said USB devices torespond to said initiating trigger request signal by preparingthemselves to perform said processes on receipt said trigger signal;configuring said USB host to issue said trigger command to each of saidplurality of said USB; decoding said trigger command by means of saidUSB devices; configuring said USB devices to execute said processes atsubstantially the same time; and whereby one or more processes withinsaid USB devices can be initiated or stopp d upon receipt of saidtrigger command signal from said USB host.
 35. A method as claimed inclaim 34, wherein said trigger request signal comprises any of the USBpacket signal structures defined in the USB specification, commandsequences sent to the USB device, or data sequences sent to the USBdevice.
 36. A method as claimed in claim 34, including transmitting saidtrigger request signal and said trigger command signal in apredetermined sequence.
 37. A method as claimed in claim 34, whereinsaid trigger command signal comprises any of the USB packet signalstructures defined in the USB specification, command sequences sent tothe USB device, or data sequences sent to the USB device.
 38. A methodas claimed in claim 34, wherein said local USB decoding device is amicrocontroller, a microprocessor, a field programmable gate array orany other element capable of decoding data structures within said USB.39. A method according to claim 34, wherein said trigger request signalcomprises OUT tokens, IN tokens, ACK tokens, NAK tokens, STALL tokens,PRE tokens, SOF tokens, SETUP tokens, DATA0 tokens, DATA1 tokens, orprogrammable sequences bit patterns in the USB data packets.
 40. Amethod according to claim 34, wherein said initiating trigger requestsignal comprises OUT tokens, IN tokens, ACK tokens, NAK tokens, STALLtokens, PRE tokens, SOF tokens, SETUP tokens, DATA0 tokens, DATA1tokens, or programmable sequences bit patterns in the USB data packets.41. A method according to claim 34, wherein said trigger command isencoded into said USB traffic using a signal protocol defined within theUSB specification.
 42. A method according to claim 18, wherein each ofsaid USB devices receives a clock signal from an external source.
 43. Amethod according to claim 42, wherein said clock signals are receivedthrough an additional electrical or optical connector, or throughwireless means.
 44. An apparatus for locking the local clock of each ofa plurality of USB devices within the same USB tree to substantially thesame frequency, comprising: a signal generator for generating specificsignal structures in the USB data traffic, for transmitting saidspecific signal structures to said USB device in a predefined sequence,and for generating a local reference signal at each of said USB devicesfrom said specific signal structures; and a signal monitor formonitoring USB signals local to said USB device for said specific signalstructures; whereby said frequency of said local clock signal at each ofsaid USB devices can be locked to said local reference signal to adesired degree.
 45. An apparatus for measuring the propagation time ofsignals from a USB host to a USB device within a USB tree, comprising: amaster USB device comprising one of the USB devices in said USB tree; asignal generator or root hub for generating specified signal structuresin the USB data traffic, for transmitting said specified signalstructures to said USB device in a predefined sequence; a signal monitorfor monitoring said USB traffic by means of said master USB device forsaid specific signal structures and for said response signals; and atimer for measuring a time interval between said event triggeringsignals in said master USB device; and whereby a propagation time fromsaid USB host to said USB device can be determined from said timeinterval.
 46. An apparatus for determining the relative propagationdelay of electrical signals or data structures between a plurality ofUSB devices connected to a common USB host, comprising: an apparatus fordetermining respective propagation times between each of said USBdevices and said USB host as claimed in claim 45; and computing meansfor determining the difference in said propagation times between areference USB device and each of said plurality of said USB devices,wherein said reference USB device comprises one of said USB devices. 47.An apparatus for synchronizing the local clocks of each of a pluralityof USB devices connected to a common USB host via a USB tree so thatsaid clocks are substantially in phase and at substantially the samefrequency, comprising: an apparatus for locking said local clock of eachof said USB devices to substantially the same frequency as claimed inclaim 44; an apparatus for determining the relative propagation delay ofsignals from said USB host to each of said USB devices with respect to areference USB device and for determining the relative phase of saidlocal clock of each of said plurality of USB devices with respect tosaid local clock of said reference USB device as claimed in claim 46,said reference USB device comprising a selected one of said USB devices;and a timer for determining the temporal adjustment or phase offset ofeach of said local clocks required to result in said plurality of localclocks across said USB tree being substantially in phase; wherein saidapparatus is adapted to transmit said temporal adjustment or phaseoffset from said USB host to said USB devices and to provide phaseadjustment of said local clock on each of said USB devices according tosaid temporal adjustment or phase offset respectively.
 48. An apparatusfor providing synchronous operation of a plurality of USB devices at anyconnection point within a common USB expansion hub, operable to performthe method of any one of claims 1 to
 43. 49. An apparatus for providingreal-time operation of one or more USB devices at any connection pointwithin a USB expansion hub, operable to perform the method of any one ofclaims 1 to
 43. 50. An apparatus for providing real-time automatedcontrol and data acquisition functions using one or more USB devices atany connection point within a USB expansion hub, operable to perform themethod of any one of claims 1 to 43.